<?php
  /*
	PLEASE SEE NOTES BELOW.  SOME OF THE CODE IN THIS FILE WAS COPIED FROM 
	GOOGLE CODE, BUT ALOT WAS CREATED/ALTERED TO FIT THE NEEDS OF THE PROJECT
	
   * Copyright 2011 Google Inc.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   * http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
   
   
   /*
	Author: Daniel Pflieger
	Senior Capstone Scheduling Program
	
	This progrm allows a user to query the available times from a users Google Calendar.  The program
	uses php to acces the server, HTML and Javascript for presentation.  The user authenticates with
	AUTH2.0 and once the user is authenticated, the user can access calendar information.  The meat of
	the code takes place once the user is authenticated.  
   
   */
//These are all the required files.    
require_once "google-api-php-client/examples/templates/base.php";
require_once "pfliegerAPI.php";

session_start();
set_include_path("google-api-php-client/src" . PATH_SEPARATOR . get_include_path());
require_once "Google/Client.php";
require_once "Google/Service/Calendar.php";
require "databse.php";

$BOOLFLAG = False;

/************************************************
ATTENTION: Fill in these values! Make sure
the redirect URI is to this page, e.g:
http://localhost:8080/user-example.php

EDIT: the redirect URI is very important.  failure to 
put the correct URI will result in an error 400 or 401 error. 
Make sure that the URI matches exactly the code declared in console
************************************************/
//'developer_key' => 'AIzaSyAVQdfNcTo-I5MOAMRb7p9Mkh1AgZ-OeNg'

$client_id = '318987637177-k2it649olrta3t6i8ao8o1fte10kq21f.apps.googleusercontent.com';
$client_secret = '7Wlx-ike9YnjYM5COY_qr2oT';
$redirect_uri ='http://web.engr.oregonstate.edu/~pflieged/NewCapStoneWeb/cs419-teamawesome-webinterface/index.php';
$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);

$client->setScopes(array("https://www.googleapis.com/auth/calendar","https://www.googleapis.com/auth/calendar.readonly"));







/************************************************
If we're logging out we just need to clear our
local access token in this case
************************************************/
if (isset($_REQUEST['logout'])) {
  unset($_SESSION['access_token']);
  echo 'you have logged out';
 
}



/************************************************
If we have a code back from the OAuth 2.0 flow,
we need to exchange that with the authenticate()
function. We store the resultant access token
bundle in the session, and redirect to ourself.
************************************************/
if (isset($_GET['code'])) {
  $client->authenticate($_GET['code']);
  $BOOLFLAG = True;
  $_SESSION['access_token'] = $client->getAccessToken();
  $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
  header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
}

if ($BOOLFLAG == True)
	echo 'This is your time!';

/************************************************
If we have an access token, we can make
requests, else we generate an authentication URL.
EDIT: This is where the code starts once the user 
is authenticated.  This is where the user starts
to see their code.  If you are copying this code,
start your webinterface here.  Make sure you
give me credit.  Thanks.  -Daniel Pflieger
************************************************/

if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
  $client->setAccessToken($_SESSION['access_token']);

include_once 'NavBar.html'; //provides the navagation menu
include_once 'sidemenu.php';//provides the sidebar menu: given by bootstrap


$username =  $_GET['username'];
$start = $_GET['startTime'];
$finish = $_GET['endTime'];
$print = $_GET['print'];
$login = $_GET['primary'];
$ERROR = False;
 
 //Initalize Variables
if (empty($_GET['username'])){
	$username = printId($client);
}


//We are getting the date in a format not recognized by google calendatr
//we convert the date into a format that google calendate understands.
//if the file is empty, the function todaysDate() already gives us todays
//date in a format that we understand.  Else, we need to convert it
if (empty($_GET['startTime'])){
	$start = todaysDate();
	
}else {
	$start = convertDate($start);
	
} 
	
//The same goes for endTime as goes for startTime.  
if (empty($_GET['endTime'])){
	$finish = '2014-06-20T10:00:00-05:00';
}else {
	$finish = convertDate($finish);
	
}

//
if (!empty($username))
{
	//unset all the variables, code not here yet
	include 'main_output_header.php';//holds container for main output
	
}

include_once 'main_output_footer.php';


include_once 'footer.php';
?>

  
  
  
  <?php
	
  
  
  
  
  
  
} else {
  $authUrl = $client->createAuthUrl();
 
}



/************************************************
If we're signed in we can go ahead and retrieve
the ID token, which is part of the bundle of
data that is exchange in the authenticate step
- we only need to do a network call if we have
to retrieve the Google certificate to verify it,
and that can be cached.
************************************************/
if ($client->getAccessToken()) {
  $_SESSION['access_token'] = $client->getAccessToken();
  $token_data = $client->verifyIdToken()->getAttributes();
}

 

echo pageHeader("Log In Here.  Authorization2.0 code is listed below.");



if (
    $client_id == '<YOUR_CLIENT_ID>'
    || $client_secret == '<YOUR_CLIENT_SECRET>'
    || $redirect_uri == '<YOUR_REDIRECT_URI>') {
  echo missingClientSecretsWarning();
}



?> 

<div class="box">
  <div class="request">
  <?php if (isset($authUrl)): ?>
      <a class='login' href='<?php echo $authUrl; ?>'>Connect Me!</a>
	 <?php else: ?>
      <form id="url" method="GET" action="<?php echo $_SERVER['PHP_SELF']; ?>">
        <input name="url" class="url" type="text">
        <input type="submit" value="Shorten">
      </form>
      <a class='logout' href='?logout'>Logout</a>
    <?php endif ?>
  </div>


</div>





<?php echo pageFooter(__FILE__); ?>